home *** CD-ROM | disk | FTP | other *** search
/ Champak 141 / (Vol 141) Oct 17 2011.iso / Games / Clueless.swf / scripts / ComponentScroller.as < prev    next >
Encoding:
Text File  |  2011-10-17  |  4.4 KB  |  150 lines

  1. package
  2. {
  3.    import flash.display.DisplayObject;
  4.    import flash.display.DisplayObjectContainer;
  5.    import flash.events.EventDispatcher;
  6.    import flash.events.MouseEvent;
  7.    
  8.    public class ComponentScroller extends EventDispatcher
  9.    {
  10.        
  11.       
  12.       protected var _docParent:DisplayObjectContainer = null;
  13.       
  14.       protected var _doScrollUp:DisplayObject = null;
  15.       
  16.       protected var _doScrollDown:DisplayObject = null;
  17.       
  18.       public var BackgroundItems:int = 1;
  19.       
  20.       protected var _aSlots:Array;
  21.       
  22.       protected var _iScrollPos:int = 0;
  23.       
  24.       protected var _aItems:Array;
  25.       
  26.       public function ComponentScroller()
  27.       {
  28.          _aSlots = new Array();
  29.          _aItems = new Array();
  30.          _iScrollPos = 0;
  31.          _doScrollDown = null;
  32.          _doScrollUp = null;
  33.          _docParent = null;
  34.          BackgroundItems = 1;
  35.          super();
  36.       }
  37.       
  38.       public function setItems(param1:Array, param2:int = 0) : void
  39.       {
  40.          _aItems = param1;
  41.          _iScrollPos = param2;
  42.       }
  43.       
  44.       public function getItemAtSlot(param1:int) : DisplayObject
  45.       {
  46.          var _loc2_:DisplayObjectContainer = null;
  47.          _loc2_ = _aSlots[param1] as DisplayObjectContainer;
  48.          if(_loc2_.numChildren > BackgroundItems)
  49.          {
  50.             return _loc2_.getChildAt(BackgroundItems);
  51.          }
  52.          return null;
  53.       }
  54.       
  55.       protected function onScroll(param1:MouseEvent) : void
  56.       {
  57.          if(param1.delta > 0)
  58.          {
  59.             onScrollUp(param1);
  60.          }
  61.          else if(param1.delta < 0)
  62.          {
  63.             onScrollDown(param1);
  64.          }
  65.       }
  66.       
  67.       public function update() : void
  68.       {
  69.          var _loc1_:DisplayObjectContainer = null;
  70.          var _loc2_:int = 0;
  71.          var _loc3_:int = 0;
  72.          var _loc4_:DisplayObject = null;
  73.          var _loc5_:DisplayObjectContainer = null;
  74.          for each(_loc1_ in _aSlots)
  75.          {
  76.             while(_loc1_.numChildren > BackgroundItems)
  77.             {
  78.                _loc1_.removeChildAt(BackgroundItems);
  79.             }
  80.          }
  81.          _loc2_ = 0;
  82.          while(_loc2_ < _aSlots.length)
  83.          {
  84.             _loc3_ = _iScrollPos + _loc2_;
  85.             if(_loc3_ < _aItems.length)
  86.             {
  87.                _loc4_ = _aItems[_loc3_] as DisplayObject;
  88.                (_loc5_ = _aSlots[_loc2_] as DisplayObjectContainer).addChild(_loc4_);
  89.                _loc4_.x = -_loc4_.width / 2;
  90.                _loc4_.y = -_loc4_.height / 2;
  91.             }
  92.             _loc2_++;
  93.          }
  94.          _doScrollUp.visible = _iScrollPos > 0;
  95.          _doScrollDown.visible = _iScrollPos < _aItems.length - _aSlots.length;
  96.          dispatchEvent(new ComponentScrollerEvent(ComponentScrollerEvent.COMPONENT_SCROLLER_UPDATED));
  97.       }
  98.       
  99.       protected function onScrollUp(param1:MouseEvent) : void
  100.       {
  101.          if(_iScrollPos > 0)
  102.          {
  103.             --_iScrollPos;
  104.             update();
  105.          }
  106.       }
  107.       
  108.       protected function onScrollDown(param1:MouseEvent) : void
  109.       {
  110.          if(_iScrollPos < _aItems.length - _aSlots.length)
  111.          {
  112.             ++_iScrollPos;
  113.             update();
  114.          }
  115.       }
  116.       
  117.       public function get ScrollPos() : int
  118.       {
  119.          return _iScrollPos;
  120.       }
  121.       
  122.       public function setScrollButtons(param1:DisplayObject, param2:DisplayObject, param3:DisplayObjectContainer) : void
  123.       {
  124.          if(_doScrollUp != null)
  125.          {
  126.             _doScrollUp.removeEventListener(MouseEvent.CLICK,onScrollUp);
  127.          }
  128.          _doScrollUp = param1;
  129.          if(_doScrollDown != null)
  130.          {
  131.             _doScrollDown.removeEventListener(MouseEvent.CLICK,onScrollDown);
  132.          }
  133.          _doScrollDown = param2;
  134.          if(_docParent != null)
  135.          {
  136.             _docParent.removeEventListener(MouseEvent.MOUSE_WHEEL,onScroll);
  137.          }
  138.          _docParent = param3;
  139.          _doScrollUp.addEventListener(MouseEvent.CLICK,onScrollUp,false,0,true);
  140.          _doScrollDown.addEventListener(MouseEvent.CLICK,onScrollDown,false,0,true);
  141.          _docParent.addEventListener(MouseEvent.MOUSE_WHEEL,onScroll,false,0,true);
  142.       }
  143.       
  144.       public function addSlot(param1:DisplayObjectContainer) : void
  145.       {
  146.          _aSlots.push(param1);
  147.       }
  148.    }
  149. }
  150.